home *** CD-ROM | disk | FTP | other *** search
- package org.apache.xalan.xpath;
-
- import com.ibm.bsf.BSFException;
- import com.ibm.bsf.util.BSFEngineImpl;
- import com.ibm.cs.util.ReflectionUtils;
- import java.lang.reflect.Constructor;
- import java.lang.reflect.InvocationTargetException;
- import java.lang.reflect.Method;
-
- public class XSLTJavaClassEngine extends BSFEngineImpl {
- // $FF: synthetic field
- static Class class$java$lang$Double;
- // $FF: synthetic field
- static Class class$java$lang$Float;
- // $FF: synthetic field
- static Class class$java$lang$Boolean;
- // $FF: synthetic field
- static Class class$java$lang$Byte;
- // $FF: synthetic field
- static Class class$java$lang$Character;
- // $FF: synthetic field
- static Class class$java$lang$Short;
- // $FF: synthetic field
- static Class class$java$lang$Integer;
- // $FF: synthetic field
- static Class class$java$lang$Long;
-
- public Object eval(String var1, int var2, int var3, Object var4) throws BSFException {
- throw new BSFException(BSFException.REASON_UNSUPPORTED_FEATURE, "Java bytecode engine can't evaluate expressions");
- }
-
- public Object call(Object var1, String var2, Object[] var3) throws BSFException {
- int var4 = var2.lastIndexOf(".");
- Object[] var5 = null;
- boolean var6 = false;
- if (var4 == -1) {
- var1 = var3[0];
- if (var3.length > 1) {
- var5 = new Object[var3.length - 1];
- System.arraycopy(var3, 1, var5, 0, var3.length - 1);
- }
- } else {
- String var7 = var2.substring(0, var4);
- var2 = var2.substring(var4 + 1);
- var5 = var3;
- var6 = var2.equals("new");
-
- try {
- var1 = Class.forName(var7);
- } catch (ClassNotFoundException var12) {
- throw new BSFException(1, "unable to load class '" + var7 + "'", var12);
- }
- }
-
- Class[] var16 = null;
- if (var5 != null) {
- var16 = new Class[var5.length];
-
- for(int var8 = 0; var8 < var16.length; ++var8) {
- var16[var8] = var5[var8] != null ? var5[var8].getClass() : null;
- }
- }
-
- boolean var17 = false;
- boolean var9 = false;
-
- try {
- while(!var17) {
- if (var5 == null) {
- var17 = true;
- } else if (!var9) {
- for(int var18 = 0; var18 < var16.length; ++var18) {
- Class var22 = var16[var18];
- if (var22 != null) {
- if (var22 == (class$java$lang$Double != null ? class$java$lang$Double : (class$java$lang$Double = class$("java.lang.Double")))) {
- var22 = Double.TYPE;
- }
-
- if (var22 == (class$java$lang$Float != null ? class$java$lang$Float : (class$java$lang$Float = class$("java.lang.Float")))) {
- var22 = Float.TYPE;
- } else if (var22 == (class$java$lang$Boolean != null ? class$java$lang$Boolean : (class$java$lang$Boolean = class$("java.lang.Boolean")))) {
- var22 = Boolean.TYPE;
- } else if (var22 == (class$java$lang$Byte != null ? class$java$lang$Byte : (class$java$lang$Byte = class$("java.lang.Byte")))) {
- var22 = Byte.TYPE;
- } else if (var22 == (class$java$lang$Character != null ? class$java$lang$Character : (class$java$lang$Character = class$("java.lang.Character")))) {
- var22 = Character.TYPE;
- } else if (var22 == (class$java$lang$Short != null ? class$java$lang$Short : (class$java$lang$Short = class$("java.lang.Short")))) {
- var22 = Short.TYPE;
- } else if (var22 == (class$java$lang$Integer != null ? class$java$lang$Integer : (class$java$lang$Integer = class$("java.lang.Integer")))) {
- var22 = Integer.TYPE;
- } else if (var22 == (class$java$lang$Long != null ? class$java$lang$Long : (class$java$lang$Long = class$("java.lang.Long")))) {
- var22 = Long.TYPE;
- }
-
- var16[var18] = var22;
- }
- }
-
- var9 = true;
- } else {
- for(int var10 = 0; var10 < var16.length; ++var10) {
- Class var21 = var16[var10];
- if (var21 != null) {
- if (var21 == Double.TYPE) {
- var21 = class$java$lang$Double != null ? class$java$lang$Double : (class$java$lang$Double = class$("java.lang.Double"));
- }
-
- if (var21 == Float.TYPE) {
- var21 = class$java$lang$Float != null ? class$java$lang$Float : (class$java$lang$Float = class$("java.lang.Float"));
- } else if (var21 == Boolean.TYPE) {
- var21 = class$java$lang$Boolean != null ? class$java$lang$Boolean : (class$java$lang$Boolean = class$("java.lang.Boolean"));
- } else if (var21 == Byte.TYPE) {
- var21 = class$java$lang$Byte != null ? class$java$lang$Byte : (class$java$lang$Byte = class$("java.lang.Byte"));
- } else if (var21 == Character.TYPE) {
- var21 = class$java$lang$Character != null ? class$java$lang$Character : (class$java$lang$Character = class$("java.lang.Character"));
- } else if (var21 == Short.TYPE) {
- var21 = class$java$lang$Short != null ? class$java$lang$Short : (class$java$lang$Short = class$("java.lang.Short"));
- } else if (var21 == Integer.TYPE) {
- var21 = class$java$lang$Integer != null ? class$java$lang$Integer : (class$java$lang$Integer = class$("java.lang.Integer"));
- } else if (var21 == Long.TYPE) {
- var21 = class$java$lang$Long != null ? class$java$lang$Long : (class$java$lang$Long = class$("java.lang.Long"));
- }
-
- var16[var10] = var21;
- }
- }
-
- var17 = true;
- }
-
- try {
- if (var6) {
- Constructor var20 = ReflectionUtils.getConstructor((Class)var1, var16);
- Object var23 = var20.newInstance(var5);
- return var23;
- }
-
- Method var19 = ReflectionUtils.getMethod(var1, var2, var16);
- return var19.invoke(var1, var5);
- } catch (NoSuchMethodException var13) {
- if (var17) {
- throw var13;
- }
- }
- }
-
- return null;
- } catch (Exception var14) {
- Throwable var11 = var14 instanceof InvocationTargetException ? ((InvocationTargetException)var14).getTargetException() : null;
- throw new BSFException(BSFException.REASON_OTHER_ERROR, "method call/new failed: " + var14 + (var11 == null ? "" : " target exception: " + var11), var11);
- }
- }
-
- // $FF: synthetic method
- static Class class$(String var0) {
- try {
- return Class.forName(var0);
- } catch (ClassNotFoundException var2) {
- throw new NoClassDefFoundError(((Throwable)var2).getMessage());
- }
- }
- }
-